package com.dz.reflect;

import java.lang.reflect.*;

public class ReflectDemo06 {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchFieldException, InvocationTargetException, NoSuchMethodException {
        Class cls = Class.forName("com.dz.reflect.Person");

        Object o = cls.newInstance();// 通过反射创建对象
        // 反射拿到所有方法
        Method[] methods = cls.getDeclaredMethods();
        for (Method method : methods) {
            method.setAccessible(true);
//            System.out.println(Modifier.toString(method.getModifiers()));// 拿到方法的修饰符
//            String returnType = method.getReturnType().getSimpleName();// 拿到方法的返回值
//            String name = method.getName();// 方法的名字
//            Parameter[] parameters = method.getParameters();
//            System.out.println(returnType);
//            System.out.println(name);
//            for (Parameter parameter : parameters) {
//                System.out.println(parameter.getName());// 参数的名字
//                System.out.println(parameter.getType().getSimpleName());// 参数的类型
//                System.out.println(parameter.getType().getSimpleName());// 参数的类型
//            }
            if (method.getName().equals("show")) {
                method.invoke(o);// 调用该类方法
            }


        }

        // 对于方法来说
    }

}
